﻿#ifndef MONITORINFO_H
#define MONITORINFO_H

#include <QString>
#include <QList>
#include <QRect>
#include <QPoint>

struct MonitorData
{
public:
    QString systemName() const;
    QString manufacturer() const;
    QString model() const;
    QRect   geometry() const;

    qreal   scaleFactor() const;
    Qt::ScreenOrientation orientation() const;

    QPoint toLogical(const QPoint& pos) const;
    QRect toLogical(const QRect& rect) const;

private:
    QString m_systemName;   // Qt QScreen::name() 返回的系统标识符
    QString m_manufacturer; // 制造商缩写，例如 DEL, SAM
    QString m_model;        // 型号名称（如果 EDID 中有）
    QRect   m_geometry;     // 矩形区域
    qreal   m_scaleFactor = 1.0f; // 系统缩放比例，默认1.0
    Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation; // 显示方向

    friend class MonitorInfo;
};

class MonitorInfo
{
public:
    static QList<MonitorData> getAllMonitors();
};

#endif // MONITORINFO_H
